package ae.pcfc.cldos.online.net.service;

import ae.pcfc.cldos.online.net.service.vo.EmployeeDetailsFromGSVO;
import ae.pcfc.cldos.online.net.service.vo.InsertVoucherVO;
import ae.pcfc.cldos.online.net.service.vo.ListOfEmployeeDetailsFromGSVO;
import ae.pcfc.cldos.online.net.service.vo.NOCDetailsFromGSVO;

/**
 * 
 * @author arosa
 *
 */
public interface GSEmployeeDetailsService {

	public ListOfEmployeeDetailsFromGSVO getEmployeeDetailsList(String companyLicenseNo, Integer page, Integer perPage);
	
	public boolean validateVisitor(String visitorId, String companyLicNo);
	
	public boolean validateEmployee(String employeeId, String companyLicNo);
	
	public EmployeeDetailsFromGSVO getEmployeeDetailsById(String employeeId, String companyLicNo, boolean isGeneralAdminRequest);
	
	public ListOfEmployeeDetailsFromGSVO getVisitorsDetailsList(String companyLicenseNo, Integer page, Integer perPage);
	
	public EmployeeDetailsFromGSVO getVisitorDetailsById(String visitorId, String companyLicNo, boolean isGeneralAdminRequest);
	
	public NOCDetailsFromGSVO getNOCDetailsById(String empId, String companyLicNo,String appId);
	/**
	 * @param clientRefNo
	 * @return
	 */
	public String getEmployeeStatus(String clientRefNo);
	/**
	 * @param OfflineAppId
	 * @return
	 */
	public boolean approveVisitVisaCancel(String OfflineAppId,String appId, String licNo);
	
	/**
	 * @param insertVoucherVO
	 */
	public void insertPaymentAdvice(InsertVoucherVO insertVoucherVO);
	
	/**
	 * @param OfflineAppId
	 * @param adviceId
	 */
	public void deactivatePaymentAdvice(String OfflineAppId, String adviceId);
}
